<template>
	<view class="user-card-box">
		
		<view class="user-card">
			<view class="title">
				<view class="icon">
					<uv-icon name="grid-fill" size="20" color="#aaa"></uv-icon>
				</view>
				<text class="text">技能分类</text>
			</view>
			
			
			<uni-swiper-dot class="uni-swiper-dot-box" @clickItem="clickItem" :info="swiperList" :current="current" :dots-styles="dotsStyles" field="content">
				<swiper class="swiper-box" :class="dataList.length > 4 ? '' : 'line'" @change="change" :current="swiperDotIndex">
					<swiper-item v-for="(swiper,si) in swiperList">
						<view class="user-swiper">
							<view @click="tabClick(item)" class="user-box" v-for="(item,i) in swiper.list">
								<view class="avatar-box">
									<uv-image border-radius="10" height="140" width="140"  :src="item.thumb"></uv-image>
								</view>
								<view class="nickname">{{item.name}}</view>
							</view>
						</view>  
					</swiper-item>
				</swiper>
			</uni-swiper-dot>
			
		
		</view>
		
		
	</view>
	
</template>

<script>
	export default {
		components: {
			
		},
		props: {
			dataList: {
				type: Array,
				default: [],
			},
		}, 
		data() {
			return {
				swiperDotIndex: 0,  
				current: 0,
				dotsStyles: {
					backgroundColor: '#ddd',
					border: '1px #ddd solid',
					color: '#fff',
					selectedBackgroundColor: 'var(--ui-BG-Main)',
					selectedBorder: '1px var(--ui-BG-Main) solid'
				},
			}
		},
		computed: {
			swiperList() {
				return this.getSwiperList(this.dataList);
			},
		},
		created() {
			
		},
		methods: {
			change(e) {
				this.current = e.detail.current
			},
			getSwiperList(dataList) {
				var swiperList = [];
				var categoryList = [];
				for(var i=0;i<dataList.length;i++){
					var category = dataList[i];
					categoryList.push(category);
					if((i+1)%8 == 0 || (i+1) == dataList.length){
						var swiper = {
							list: categoryList
						};
						swiperList.push(swiper);
						categoryList = [];
					}
				}
				return swiperList;
			},
			clickItem(e) {
				this.swiperDotIndex = e
			},
			tabClick(e) {
				this.$emit('tabClick', e);
			},
		}
	}
</script>

<style lang="scss" scoped>
	.user-card-box {
		background-color: #fff;
		border-radius: 10px;
	}
	
	.swiper-box {
		height: 460rpx;
	}
	
	.line {
		height: 240rpx;
	}
	
	.user-card {
		padding: 10px 0;
		padding-bottom: 0;
		
		.title {
			padding: 10px;
			padding-top: 0;
			font-size: 28rpx;
			font-weight: bold;
			display: flex;
			align-items: center;
			padding-bottom: 15px;
			
			.icon {
				background-color: #ddd;
				width: 36rpx;
				height: 36rpx;
				display: flex;
				justify-content: center;
				align-items: center;
				border-radius: 100%;
			}
			
			.text {
				margin-left: 4px;
			}
		}
		
		.user-swiper {
			display: flex;
			flex-wrap: wrap;
			padding: 0px 5px;
				
			.avatar-box {
				margin-bottom: 5px;
				position: relative;
				
				.badge {
					width: 30rpx;
					height: 30rpx;
					background-color: var(--ui-BG-Main);
					position: absolute;
					right: 0;
					bottom: 0;
					border-radius: 100%;
					border: 2px solid #fff;
				}
			}
			
			.user-box {
				display: flex;
				flex-direction: column;
				justify-content: center;
				align-items: center;
				margin-bottom: 10px;
				width: 25%;
				
				.nickname {
					font-size: 28rpx;
					text-overflow: ellipsis;
					overflow: hidden;
					white-space: nowrap;
					max-width: 140rpx;
					text-align: center;
				}
			}
		}
	}
	
</style>